package cn.itsource.ymcc.service.impl;

import cn.itsource.util.AssertUtil;
import cn.itsource.util.StrUtils;
import cn.itsource.ymcc.service.ITokenService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;

import java.util.concurrent.TimeUnit;

/**
 * @author Eric Chen
 * @since 2022/7/22
 */
@Service
public class TokenServiceImpl implements ITokenService {

    @Autowired
    private StringRedisTemplate redisTemplate;

    /**
     * 创建Token
     * 1.判断参数
     * 2.创建随机令牌：
     * 3.存储到Redis :key？  loginId:courseId
     * 4.返回Token给页面
     * @param courseId :课程ID ，有可能是一个 id， 也有可能是多个：  String courseId =  9,1
     * @return ：Token
     */
    @Override
    public String createToken(String courseId) {
        //1.判断参数
        AssertUtil.isNotNull(courseId,"非法请求");
        //2.创建随机令牌：
        String token = StrUtils.getComplexRandomString(6);
        //3.存储到Redis :key？  loginId:courseId
        //TODO?
        Long loginId = 3l;
        // key = "3:9,1"
        String key  =loginId+":"+courseId;
        //存储到Redis
        redisTemplate.opsForValue().set(key , token , 10, TimeUnit.MINUTES);
        //4.返回Token给页面
        return token;
    }
}
